动态封装子系统 |
您所在的位置:网站首页 › simulink s function › 动态封装子系统 |
动态封装子系统允许库模块修改其内容 仅当封装子系统位于库中时,才会启用此复选框。选中此选项将允许模块初始化代码修改封装子系统的内容(即,它允许代码添加或删除模块以及设置这些模块的参数)。否则,当封装库模块尝试以任何方式修改其内容时,将会生成错误。要在 MATLAB® 提示符下设置此选项,请选择自修改模块并输入以下命令。 set_param(gcb, 'MaskSelfModifiable', 'on');然后保存模块。 为库模块创建自修改封装您可以创建能修改其结构性内容的封装库模块。这些自修改封装使您能够: 基于封装对话框中的参数,或者在最初将子系统从库拖到新的模型中时,修改封装子系统的内容。 改变位于库中的多端口 S-Function 模块上的端口数目。
在您加载模块时,Simulink® 对可自修改的库模块运行封装初始化代码。如果封装初始化代码控制模块的输入/输出端口数目,请将该模块标记为可自修改。否则,封装初始化代码将不会执行,也不会设置正确的端口数目数量,这将断开模块连接。 使用封装编辑器创建自修改封装要使用封装编辑器创建自修改封装: 解锁库(请参阅锁定和解锁库)。 选择库中的模块。 在模块选项卡的封装组中,点击编辑封装。封装编辑器随即打开。 在封装编辑器的代码窗格中,选择允许库模块修改其内容选项。 在封装的初始化窗格中输入用于修改封装子系统的代码。 不要在对话框参数回调中输入会修改封装子系统结构的代码(请参阅添加封装代码)。在您编辑该参数时,执行此操作会触发错误。 点击应用以应用更改或点击确定以应用更改并关闭封装编辑器。 锁定库。 从命令行创建自修改封装 要从命令行创建自修改封装: 使用以下命令解锁库: set_param(gcs,'Lock','off')使用以下命令指定模块是自修改模块: set_param(block_name,'MaskSelfModifiable','on')其中 block_name 是库中模块的完整路径。 创建自修改封装 库 selfModifying_example 包含一个封装子系统,该子系统基于子系统封装对话框中的所选内容修改其输入端口数目。 在“库”窗口中,在库选项卡上,点击锁定的库以解锁库。 在 Subsystem 模块选项卡上的封装组中,点击编辑封装。封装编辑器随即打开。 封装编辑器的参数和对话框窗格中定义了一个参数 numIn,用于存储输入端口数选项的值。此封装对话框回调将基于输入端口数列表中的所选内容,在封装子系统内添加或删除输入端口。 为了让对话框回调正常工作,选择了封装编辑器代码窗格上的允许库模块修改其内容选项。如果不选择此选项,库模块副本将无法修改其结构性内容。此外,更改输入端口数列表中的所选内容也会出现错误。 将封装参数值从父级子系统传递给子模块您可以通过三种方式将封装参数值从父级子系统传递给子模块: 使用参数提升。 使用封装初始化代码。这是通过对子模块使用 set_param 命令来完成的。 让子模块参数引用父封装参数名称。这仅适用于编辑参数。 相关主题创建模块封装创建简单封装初始化封装Mask Linked Blocks自修改接口连接器 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |